package warpper;

/**
 * JDK1.5出现时推出的新特性:自动拆装箱
 */
public class IntegerDemo3 {
    public static void main(String[] args) {
        int a = 123;
        /*
            Integer i = a;
            当编译器发现源代码中将一个基本类型直接赋值给引用类型时，则会触发编译器
            的自动装箱特性，此时编译器会将代码改为:
            Integer i = Integer.valueOf(a);
         */
        Integer i = a;

        /*
            int b = i;
            编译器编译源代码时若发现将包装类直接赋值给基本类型时，则触发编译器的
            自动拆箱特性，编译器会将代码改为:
            int b = i.intValue();
        */
        int b = i;

        /*
            触发了自动装箱，编译器会改代码为:
            doSome(Integer.valueOf(123));
         */
        doSome(123);
    }

    public static void doSome(Object obj){

    }
}
